from langchain_core.prompts import ChatPromptTemplate
from datetime import datetime
from Agents.llms import LLMFactory
from tools.product_tools import search_product,purchase_product,recommend_product
from Agents.AssittantFactory import Assistant
from Agents.RouteTools import CompleteOrEscalate
from tools.after_sales_tools import after_sales_service,add_tracking_number,check_after_sales_status
from Agents.AssittantFactory import Assistant

aftersales_assittant_prompt = ChatPromptTemplate.from_messages(
    [
        (


            "system",
            "您是处理关于商品售后的专业助理。您可以帮助用户申请售后，查询售后状态，更新售后物流信息 "
            "主助理在用户需要帮助申请售后，查询售后状态，更新售后物流信息时将工作委托给您。 "
            "在搜索时，保持持久性。如果第一次搜索没有返回结果，扩展您的查询范围。 "
            "如果需要更多信息或客户改变主意，将任务回传给主助理。 "
            "记住，只有在相关工具成功使用后，申请售后，查询售后状态，更新售后物流信息才算完成。 "
            "\n\n当前用户信息:\n<user_info>\n{user_info}\n</user_info>"

        ),
        ("placeholder", "{messages}"),
    ]
)

after_sales_safe_tools = [check_after_sales_status]
after_sales_sensitive_tools = [after_sales_service,add_tracking_number]
after_sales_tools = after_sales_safe_tools + after_sales_sensitive_tools




sensitive_tool_names = [tool.name for tool in after_sales_sensitive_tools]
llm = LLMFactory.create_production_llm()
chain = aftersales_assittant_prompt | llm.bind_tools(
    after_sales_tools+[CompleteOrEscalate])
after_sales_assistant = Assistant(chain)